#

| Chapter 25 Showing What's in a File |

## 25.20 Printing the Top of a File

Many versions of BSD UNIX include a nice program called head that prints the top n (default: 10) lines of a file. System V or other users without head can emulate its behavior with sed.

The easiest way is simply to use sed's q command (34.21):

>     % sed 10q file

head | If you want to get fancy, you can use a shell script to emulate all of the behavior of the BSD head command, including taking an option for the number of lines to be printed, and printing a separator line if multiple filenames are specified on the same command line.

The CD-ROM has that script. Most of it is straightforward. One interesting part is shown below. It's the sed command that prints the separator when more than one file is shown:

>     sed "
>     1i\\
>     ==> $1 <==
>     ${show}q" $1

The sed command 1i inserts the separator before line 1. The sed command q quits after the number of lines (by default, 10) in the `$show` shell variable (6.8). The shell substitutes `$1` with the filename being read. The double quotes (`"`) around the sed commands let the shell build the commands on-the-fly before starting sed.

- JP, TOR

25.19 Reverse Lines in Long Files with flip |  | 25.21 Numbering Lines